package com.springdoor.wx.api.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

public class ResultSkuDetail implements Serializable {

    private static final long serialVersionUID = 1L;

    private String skuId;

    /** 部门ID */
    private Long storeId;

    /** 部门名称 */
    private String store;

    /** 上架时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date putonTime;

    /** 商品编码 */
    private String gNumber;

    /** 商品名称 */
    private String title;

    /** 关联商品 */
    private String assNumber;

    /** 品牌ID */
    private Long introId;

    /** 品牌 */
    private String intro;

    /** 类型id */
    private Long typeId;

    /** 类型 */
    private String typeName;

    /** 价格 */
    private Integer price;

    /** 历史最高价格 */
    private Integer originPrice;

    private Integer minLinePrice;
    private Integer maxLinePrice;

    /** 销售数量 */
    private Integer soldNum;

    /** 库存 */
    private Integer spuStockQuantity;

    /** 分类属性 */
    private String assort;

    /** 图片地址 */
    private String thumb;

    /** 状态（0未上架 1已上架 2已售空 3已断货） */
    private String status;

    /** 删除标志（0代表存在 1代表删除） */
    private String available;

    /**  */
    private String etitle;

    /** 关联订单订单号 */
    private List<String> categoryIds;

    /** 详情图片 */
    private List<String> desc;

    /** 轮播图 */
    private List<String> images;

    /** 关联订单信息 */
    private List<Map<String, Object>> skuList;

    /** 订单属性信息 */
    private List<Map<String, Object>> specList;

    /** 订单属性规格信息 */
    private List<ResultConfig> configList;

    /** 满减tag */
    private List<Object> spuTagList;

    public String getSkuId() {
        return skuId;
    }

    public void setSkuId(String skuId) {
        this.skuId = skuId;
    }

    public Long getStoreId() {
        return storeId;
    }

    public void setStoreId(Long storeId) {
        this.storeId = storeId;
    }

    public Date getPutonTime() {
        return putonTime;
    }

    public void setPutonTime(Date putonTime) {
        this.putonTime = putonTime;
    }

    public String getgNumber() {
        return gNumber;
    }

    public void setgNumber(String gNumber) {
        this.gNumber = gNumber;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getAssNumber() {
        return assNumber;
    }

    public void setAssNumber(String assNumber) {
        this.assNumber = assNumber;
    }

    public Long getIntroId() {
        return introId;
    }

    public void setIntroId(Long introId) {
        this.introId = introId;
    }

    public String getIntro() {
        return intro;
    }

    public void setIntro(String intro) {
        this.intro = intro;
    }

    public Long getTypeId() {
        return typeId;
    }

    public void setTypeId(Long typeId) {
        this.typeId = typeId;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public Integer getPrice() {
        return price;
    }

    public void setPrice(Integer price) {
        this.price = price;
    }

    public Integer getOriginPrice() {
        return originPrice;
    }

    public void setOriginPrice(Integer originPrice) {
        this.originPrice = originPrice;
    }

    public Integer getSoldNum() {
        return soldNum;
    }

    public void setSoldNum(Integer soldNum) {
        this.soldNum = soldNum;
    }

    public Integer getSpuStockQuantity() {
        return spuStockQuantity;
    }

    public void setSpuStockQuantity(Integer spuStockQuantity) {
        this.spuStockQuantity = spuStockQuantity;
    }

    public String getAssort() {
        return assort;
    }

    public void setAssort(String assort) {
        this.assort = assort;
    }

    public String getThumb() {
        return thumb;
    }

    public void setThumb(String thumb) {
        this.thumb = thumb;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getAvailable() {
        return available;
    }

    public void setAvailable(String available) {
        this.available = available;
    }

    public List<String> getCategoryIds() {
        return categoryIds;
    }

    public void setCategoryIds(List<String> categoryIds) {
        this.categoryIds = categoryIds;
    }

    public List<String> getDesc() {
        return desc;
    }

    public void setDesc(List<String> desc) {
        this.desc = desc;
    }

    public List<String> getImages() {
        return images;
    }

    public void setImages(List<String> images) {
        this.images = images;
    }

    public List<Map<String, Object>> getSkuList() {
        return skuList;
    }

    public void setSkuList(List<Map<String, Object>> skuList) {
        this.skuList = skuList;
    }

    public List<Map<String, Object>> getSpecList() {
        return specList;
    }

    public void setSpecList(List<Map<String, Object>> specList) {
        this.specList = specList;
    }

    public List<ResultConfig> getConfigList() {
        return configList;
    }

    public void setConfigList(List<ResultConfig> configList) {
        this.configList = configList;
    }

    public List<Object> getSpuTagList() {
        return spuTagList;
    }

    public void setSpuTagList(List<Object> spuTagList) {
        this.spuTagList = spuTagList;
    }

    public String getEtitle() {
        return etitle;
    }

    public void setEtitle(String etitle) {
        this.etitle = etitle;
    }

    public String getStore() {
        return store;
    }

    public void setStore(String store) {
        this.store = store;
    }

    public Integer getMinLinePrice() {
        return minLinePrice;
    }

    public void setMinLinePrice(Integer minLinePrice) {
        this.minLinePrice = minLinePrice;
    }

    public Integer getMaxLinePrice() {
        return maxLinePrice;
    }

    public void setMaxLinePrice(Integer maxLinePrice) {
        this.maxLinePrice = maxLinePrice;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("skuId", getSkuId())
                .append("storeId", getStoreId())
                .append("store", getStore())
                .append("putonTime", getPutonTime())
                .append("gNumber", getgNumber())
                .append("title", getTitle())
                .append("assNumber", getAssNumber())
                .append("introId", getIntroId())
                .append("intro", getIntro())
                .append("typeId", getTypeId())
                .append("typeName", getTypeName())
                .append("price", getPrice())
                .append("originPrice", getOriginPrice())
                .append("minLinePrice", getMinLinePrice())
                .append("maxLinePrice", getMaxLinePrice())
                .append("soldNum", getSoldNum())
                .append("spuStockQuantity", getSpuStockQuantity())
                .append("assort", getAssort())
                .append("thumb", getThumb())
                .append("status", getStatus())
                .append("available", getAvailable())

//                .append("etitle", getEtitle())
                .append("categoryIds", getCategoryIds())
                .append("desc", getDesc())
                .append("images", getImages())
                .append("skuList", getSkuList())
                .append("specList", getSpecList())
                .append("configList", getConfigList())
                .append("spuTagList", getSpuTagList())
                .toString();
    }
}
